package com.neusiri.config;

import com.neusiri.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.ArrayList;
import java.util.List;

/**
 * WebAppConfig
 *
 * @author 丛有志
 * @date 2020/11/6 14:49
 * <p>
 * 版本        修改时间        作者        修改内容
 * V1.0        2020/11/6     丛有志        初始版本
 */
@Configuration
public class WebAppConfig implements WebMvcConfigurer {


    @Bean
    public LoginInterceptor getLoginInterceptor() {
        return new LoginInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        List<String> patterns  = new ArrayList<>();
        patterns.add("/api/user/login");
        patterns.add("/api/user/register");
        patterns.add("/api/getPicCode");
        // 所有以api开头的访问都要进入LoginInterceptor拦截器进行登录验证，并排除login接口（全路径）,分别设置的话会创建多个拦截器
        // 必须写成getLoginInterceptor(),否则LoginInterceptor中的@Resource会失效
        registry.addInterceptor(getLoginInterceptor()).addPathPatterns("/api/**").excludePathPatterns(patterns);
    }
}
